Computing device and corresponding method for generating data representing text

ABSTRACT

An example method involves (i) accessing first data defining multiple portions of a content item, wherein at least a plurality of the portions represent text; (ii) selecting, from the plurality of portions representing text, a subset of the portions representing text, wherein the selecting is based on each portion of the selected subset having a particular characteristic; (iii) based on the text represented by the portions of the selected subset, generating second data that represents a concatenation of the text represented by the portions of the selected subset; and (iv) providing output based on the generated second data.

RELATED DISCLOSURES

This application is a continuation of U.S. patent application Ser. No.16/517,033, filed Jul. 19, 2019, which is a continuation of U.S. patentapplication Ser. No. 15/991,869, filed May 29, 2018, and issued as U.S.Pat. No. 10,402,476 on Sep. 3, 2019, which is a continuation of U.S.patent application Ser. No. 14/322,611, filed Jul. 2, 2014, and issuedas U.S. Pat. No. 10,019,416 on Jul. 10, 2018, the content of all ofwhich are hereby incorporated by reference herein in their entirety.

This application is related to (i) U.S. patent application Ser. No.14/322,627, filed Jul. 2, 2014 (now U.S. Pat. No. 10,031,899), and (ii)U.S. patent application Ser. No. 14/322,633 filed Jul. 2, 2014, (nowU.S. Pat. No. 9,798,715) both of which (i) are assigned to the assigneeof the present disclosure, and (ii) and are hereby incorporated byreference herein in their entirety.

BACKGROUND Usage and Terminology

In this disclosure, unless otherwise specified and/or unless theparticular context clearly dictates otherwise, each usage of “a” or “an”means at least one, and each usage of “the” means the at least one.

Unless otherwise indicated herein, the materials described in thissection are not prior art to the claims in this disclosure and are notadmitted to be prior art by inclusion in this section.

To listen to the radio, a listener typically tunes a receiver to aparticular frequency (e.g., an AM or FM frequency) and listens to music,news, or other audible content being broadcast on that frequency by aradio station. The listener may tune the receiver, and therefore selecta radio station, in a variety of ways, such as by rotating a dial,pushing a seek button, or pushing a station preset button. By selectingone of multiple radio stations, the listener may exert some control overthe audible content presented to the listener. However, although thelistener may control which station is selected, the listener is unlikelyto have any influence over the audible content that gets broadcast bythe selected station.

Typically, a radio station broadcasts the same audible content tomultiple receivers, and therefore to multiple listeners, at the sametime. Given this, it is common for a radio station to produce andbroadcast audible content that is intended to appeal to a variety ofdifferent listeners. However, while some listeners may find such audiblecontent appealing, other listeners may find it unappealing because it isnot tailored to their particular interests.

SUMMARY

In one aspect, a method is disclosed. The method involves (i) accessingfirst data representing text, wherein the text defines at least oneposition representing a particular type of grammatical break between twoportions of the text; (ii) identifying, from among the at least oneposition, a position that is closest to a target position within thetext; (iii) based on the identified position within the text, generatingsecond data that represents a proper subset of the text, wherein theproper subset extends from an initial position within the text to theidentified position within the text; and (iv) providing output based onthe generated second data.

In another aspect, a non-transitory computer-readable medium isdisclosed. The medium has stored thereon program instructions that whenexecuted by a processor cause performance of the acts of the methoddescribed above.

In another aspect, a computing device is disclosed. The computing deviceincludes a communication interface, a processor, and a non-transitorycomputer-readable medium having stored thereon program instructions thatwhen executed by the processor cause the computing device to perform theacts of the method described above.

These, as well as other aspects, advantages, and alternatives, willbecome apparent to those of ordinary skill in the art by reading thefollowing detailed description, with reference where appropriate to theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified block diagram of an example system;

FIG. 2 is a flow chart depicting acts of an example method;

FIG. 3 is a flow chart depicting acts of another example method;

FIG. 4 is a flow chart depicting acts of yet another example method; and

FIG. 5 is a flow chart depicting acts of still another example method.

DETAILED DESCRIPTION

I. Overview

As indicated above, a radio station may produce and broadcast audiblecontent that is intended to appeal to a variety of different listeners.For example, in the context of producing and broadcasting a newsprogram, a narrator (such as a news anchor affiliated with the radiostation, or another person) may read aloud news stories from each of avariety of different predetermined categories, such as sports, politics,and entertainment, and the audible readings may be included as part ofthe news program.

Although some listeners may be interested in audible versions of newsstories from all of the predetermined categories, other listeners mayhave different interests. For example, one listener may be interested insports and entertainment, but not politics, while another listener maybe interested in politics and entertainment, but not sports. In eithercase, the listener may be presented with audible content that does notalign with the listener's interests. As a result, the listener may findthe news program unappealing.

One way to help address this issue is by implementing a system thatprovides a user with a personalized news program. In one example, such asystem includes at least two computing devices, such as a server and aclient, and a communication network through which the server and theclient may communicate.

In this system, the server and the client may perform a variety of acts.For example, the server may determine a set of attributes associatedwith a user of the client and may use the determined set of attributesas a basis to generate a playlist of a personalized news program for theuser. The generated playlist may define a sequence of media contentitems, each of which may include audio content, such as an audibleversion of a news story, and/or video content. An audible version of anews story may be referred to herein as an “audible news story.” Thegenerated playlist may also define media content attribute datarespectively for each media content item, including for instance areference to data representing the media content item and metadatacharacterizing the media content item. Collectively, this sequence ofmedia content items may thus makeup a personalized news program.

After or as the server generates the playlist, the server may transmitthe playlist to the client, and the client may traverse the entries ofthe playlist, retrieve data representing each referenced media contentitem, and use the data to play out each referenced media content item inaccordance with the sequence defined by the playlist. In practice, forinstance, for each media content item of the sequence, (i) the clientmay transmit to the server, or to another server for that matter, arequest for data representing the media content item, (ii) the servermay receive the transmitted request, (iii) responsive to the serverreceiving the transmitted request, the server may transmit to theclient, the requested data, (iv) the client may receive the transmitteddata, and (v) the client may play out for the user the media contentitem represented by the received data.

Optimally, this process may involve streaming of the data representingthe media content items to the client and playout of the sequence ofmedia content items in real time by the client. In particular, for eachmedia content item referenced by the playlist, the client may request aserver to stream the data representing the media content item to theclient, and the client may then receive in response a data streamrepresenting the requested media content item. As the client receivesand buffers the requested data representing the media content items insequence, the client may play out the represented media content itemsfor a user, thus providing the user with a substantially continuousplayout of the media content items that makeup the personalized newsprogram.

As noted above, a media content item, such as an audible news story, maybe represented by data. Data representing an audible news story may begenerated in a variety of ways. In one example, a computing device mayimplement a four-phase technique to generate such data. Among otherthings, one or more portions of this technique may help ensure that thegenerated data is tailored for use in connection with a personalizednews program as described above, despite the fact that the generateddata may be derived from content originally created for another purpose,such as for use in connection with a newspaper or a news-relatedwebsite.

In one example, a first phase of the technique may help extract, fromdata representing a news article, particular portions of datarepresenting text, where the particular portions are likely to be usefulin the context of providing a personalized news program to a user asdescribed above. In one example, the first phase of the techniqueinvolves (i) the computing device accessing first data defining multipleportions of a content item, wherein at least a plurality of the portionsrepresent text; (ii) the computing device selecting, from the pluralityof portions representing text, a subset of the portions representingtext, wherein the selecting is based on each portion of the selectedsubset having a particular characteristic; (iii) based on the textrepresented by the portions of the selected subset, the computing devicegenerating second data that represents a concatenation of the textrepresented by the portions of the selected subset; and (iv) thecomputing device providing the generated second data as output.

In one example, a second phase of the technique may help edit the textrepresented by the output of first phase so that the text is likely tobe more useful in the context of providing a personalized news programto a user as described above. In one example, the second phase of thetechnique involves (i) the computing device accessing the output seconddata representing text; identifying a term within the represented text;(ii) the computing device using the identified term as a basis to selecta text-editing rule from among a set of text-editing rules; (iii) thecomputing device generating third data that represents the representedtext edited in accordance with the selected text-editing rule; and (i)the computing device providing the generated third data as output.

In one example, a third phase of the technique may help edit the textrepresented by the output of second phase so that the text is even moreuseful in the context of providing a personalized news program to a useras described above. In one example, the third phase of the techniqueinvolves (i) the computing device accessing the output third datarepresenting text, wherein the text defines at least one positionrepresenting a particular type of grammatical break between two portionsof the text; (ii) the computing device identifying, from among the atleast one position, a position that is closest to a target positionwithin the text; (iii) based on the identified position within the text,the computing device generating fourth data that represents a propersubset of the text, wherein the proper subset extends from an initialposition within the text to the identified position within the text; and(iv) the computing device providing the generated fourth data as output.

In one example, a fourth phase of the technique may use the textrepresented by the output of the third phase to generate audible contentthat is useful in the context of providing a personalized news programto a user as described above. In one example, the fourth phase of thetechnique involves (i) the computing device accessing the output fourthdata representing text; (ii) the computing device using the fourth datato display the represented text to be read aloud by a narrator; (iii)the computing device recording the narrator's reading of the text,thereby generating fifth data representing an audible version of thetext. In an alternative example, the fourth phase involves (i) thecomputing device accessing the output fourth data representing text;(ii) the computing device providing the fourth data to a text-to-speech(TTS) system that uses the fourth data to generate fifth datarepresenting an audible version of the text.

II. Example System

FIG. 1 is a simplified block diagram of an example system 100 in whichaspects of the present disclosure can be implemented. As shown, thesystem 100 includes at least two computing devices, namely a server 102and a client 104, and a communication network 106. Generally, the server102 and the client 104 are configured for communicating with each othervia the communication network 106.

A. Server

The server 102 may be configured for performing a variety of functionsor acts, such as those described in this disclosure (including theaccompanying drawings). The server 102 may take a variety of forms andmay include various components, including for example, a communicationinterface 108, a processor 110, and a data storage 112, all of which maybe communicatively linked to each other via a system bus, network, orother connection mechanism 114.

The communication interface 108 may take a variety of forms and may beconfigured to allow the server 102 to communicate with one or moredevices according to any number of protocols. For instance, thecommunication interface 108 may be configured to allow the server 102 tocommunicate with the client 104 via the communication network 106. Inone example, the communication interface 108 may take the form of awired interface, such as an Ethernet interface. As another example, thecommunication interface 108 may take the form of a wireless interface,such as a cellular or WI-FI interface.

The processor 110 may include a general purpose processor (e.g., amicroprocessor) and/or a special purpose processor (e.g., a digitalsignal processors (DSP)).

The data storage 112 may include one or more volatile, non-volatile,removable, and/or non-removable storage components, such as magnetic,optical, or flash storage, and may be integrated in whole or in partwith the processor 110. Further, the data storage 112 may take the formof a non-transitory computer-readable storage medium, having storedthereon program instructions (e.g., compiled or non-compiled programlogic and/or machine code) that, when executed by the processor 110,cause the server 102 to perform one or more functions or acts, such asthose described in this disclosure.

B. Client

Likewise, the client 104 may be configured for performing a variety offunctions or acts such as those described in this disclosure. The client104 may take a variety of forms, including for example, a mobile phone,tablet, laptop, media player, gaming device, wearable device, orvehicle. And the client 104 may include various components, includingfor example, a user interface 116, a communication interface 118, aprocessor 120, and a data storage 122, all of which may becommunicatively linked with each other via a system bus, network, orother connection mechanism 124.

The user interface 116 may be configured for facilitating interactionbetween the client 104 and a user of the client 104, such as byreceiving input from the user and providing output to the user. Thus,the user interface 116 may include input components such as a computermouse, a keyboard, a touch-sensitive panel, or perhaps a microphone forreceiving voice commands. In addition, the user interface 116 mayinclude output components such as a display screen (which, for example,may be combined with a touch-sensitive panel) a sound speaker or otheraudio output mechanism, and a haptic feedback system. Furthermore, theuser interface 116 may include a digital-analog conversion unit tofacilitate playout of media content to a user. Moreover, the client 102may provide output to the user via another user interface system (e.g.,the client 102 may communicate with an audio output system via a shortrange wireless communication, such as a connection established inaccordance with IEEE 802.15).

The communication interface 118 may take a variety of forms and may beconfigured to allow the client 104 to communicate with one or moredevices according to any number of protocols. For instance, thecommunication interface 118 may be configured to allow the client 104 tocommunicate with the server 102 via the communication network 106.Further, the communication interface 118 may take the form of a wired orwireless interface.

The processor 120 may include a general purpose processor and/or aspecial purpose processor. The data storage 122 may include one or morevolatile, non-volatile, removable, and/or non-removable storagecomponents, and may be integrated in whole or in part with the processor120. Further, the data storage 122 may take the form of a non-transitorycomputer-readable storage medium, having stored thereon programinstructions that, when executed by the processor 120, cause the client104 to perform one or more functions or acts, such as those described inthis disclosure. Such program instructions may define or be part of adiscrete software application, such a native app or web app, that can beexecuted upon user request for instance.

C. Communication Network

Generally, the communication network 106 may be configured to allow theserver 102 and the client 104 to communicate with each other using anynumber of protocols. In addition, the communication network 106 may takea variety of forms, including for example a packet-switched network suchas the Internet.

III. Example Operations

FIG. 2 is a flow chart depicting acts that can be carried out in anexample method 200 for providing a user of the client 104 with apersonalized news program.

At block 202, the method 200 involves the server 102 determining a setof (i.e., one or more) attributes associated with a user of the client104. At block 204, the method 200 involves the server 102 using thedetermined set of attributes as a basis to generate a playlist of apersonalized news program for the user. At block 206, the method 200involves the server 102 transmitting the generated playlist to theclient 104. At block 208, the method 200 involves the client 104receiving the transmitted playlist.

At block 210, the method then involves the client 104 traversing thereceived playlist, and for each media content item referenced by theplaylist, (i) the client transmitting to the server 102 a request fordata representing that referenced media content item, (ii) the server102 receiving the transmitted request, (iii) responsive to the server102 receiving the transmitted request, the server 102 transmitting therequested data to the client 104, (iv) the client 104 receiving thetransmitted data, and (v) the client 104 playing for the user (e.g., viaa media content player) the media content item represented by thereceived data.

As noted above, a media content item, such as an audible news story, maybe represented by data. Data representing an audible news story may begenerated in a variety of ways. In one example, the server 102 mayimplement a four-phase technique to generate such data. Among otherthings, one or more portions of this technique may help ensure that thegenerated data is tailored for use in connection with a personalizednews program as described above, despite the fact that the generateddata may be derived from content originally created for another purpose,such as for use in connection with a newspaper or a news-relatedwebsite.

In one example, a first phase of the technique may help extract, fromdata representing a news article, particular portions of datarepresenting text, where the particular portions are likely to be usefulin the context of providing a personalized news program to a user asdescribed above. FIG. 3 is a flow chart depicting acts that can becarried out in example method 300, which is an example implementation ofthe first phase of the technique.

At block 302, the method 300 involves the server 102 accessing firstdata defining multiple portions of a content item, wherein at least aplurality of the portions represent text. The first data may be storedin a data storage accessible to the server 102, and may be datapreviously used or intended for use in connection with anothernews-related product or service (e.g., a newspaper or a news-relatedwebsite). The first data may be generated in a variety of ways. Forexample, a producer (or other individual) may use editorial softwarerunning on a computing device to produce and/or edit a news articlebased on a news story, and to generate the first data representing thenews article, such that the first data may be stored, transferred, etc.As part of this process, for a given news article, the producer mayprovide or select various portions of text or other content to be partof the news article. Accordingly, a news article may be represented bydata defining multiple portions of the news article.

As an example illustration, at block 302, the method 300 may involve theserver 102 accessing data A defining portions A-F of a news article A.Portion A represents text specifying a headline section of a newsarticle, namely “STORM MOVING TOWARDS EAST COAST.” Portion B representsan image related to the news story, namely an image of a storm. PortionC represents text specifying a caption for the image, namely “PHOTO OF AFIRST GLIMPSE OF THE STORM.”. Portion D represents text specifying abyline section of the news article, namely “BY JOHN SMITH.”. Portion Erepresents text specifying a body section of the news article, namely“BREAKING NEWS: A MAJOR STORM IS EXPECTED TO APPROACH THE EAST COASTTHIS FRIDAY AT 5 PM EST . . . FOR EMERGENCY ASSISTANCE, DIAL 911.RELATED ARTICLE: HURRICANE NEAR EAST COAST.” (where the phrase HURRICANENEAR EAST COAST is a hyperlink to a web page of a related news article).And Portion F represents text specifying keyword tags (e.g., for use bya search engine), namely “HURRICANE, STORM, WEATHER, COAST.”. In thisillustration, a plurality of the portions A-F, namely the portions A andC-F, represent text.

At block 304, the method 300 involves the server 102 selecting, from theplurality of portions representing text, a subset of the portionsrepresenting text, wherein the selecting is based on each portion of theselected subset having a particular characteristic. In one example, thisinvolves the server 102 selecting, from the plurality of portionsrepresenting text, a proper subset of the portions representing text.

In the case where the content item is a news article, each portion ofthe selected subset having the particular characteristic may includeeach portion of the selected subset representing content from at leastone section from a predefined set of sections of the news article. Inone example, the predefined set of sections may consist of sectionshaving content that is well-suited for inclusion in an audible newsstory for use in connection with a personalized news program asdescribed above. As one example, the predefined set of sections mayconsist of a headline section, a byline section, and a body section.Other predefined sets of sections are possible as well.

Additionally or alternatively, each portion of the selected subsethaving the particular characteristic may include each portion of theselected subset representing text. Other particular characteristics arepossible as well.

Continuing with the illustration above, in the case where each portionof the selected subset having the particular characteristic includeseach portion of the selected subset representing content from at leastone section from a predefined set of sections of the news article, andwhere the predefined set of sections consists of a headline section, abyline section, and a body section, at block 304, the method 300 mayinvolve the server 102 selecting, from the plurality of portions A andC-F, a subset of portions A, D, and E.

At block 306, the method 300 involves, based on the text represented bythe portions of the selected subset, the server 102 generating seconddata that represents a concatenation of the text represented by theportions of the selected subset.

Continuing with the illustration above, at block 306, the method 300 mayinvolve the server 102 generating data B that represents a concatenationof the text represented by the portions A, D, and E, i.e., “STORM MOVINGTOWARDS EAST COAST. BY JOHN SMITH. BREAKING NEWS: A MAJOR STORM ISEXPECTED TO APPROACH THE EAST COAST THIS FRIDAY AT 5 PM EST . . . FOREMERGENCY ASSISTANCE, DIAL 911. RELATED ARTICLE: HURRICANE NEAR EASTCOAST.”

At block 308, the method 300 involves the server 302 providing outputbased on the generated second data. In one example, this may involve theserver 102 providing the generated second data as output. As anotherexample, this may involve the server 102 providing a subset of, or amodified version of, the generated second data as output.

In one example, the server 102 providing output based on the generatedsecond data may involve the server 102 transmitting to a computingdevice (e.g., the client 104), output based on the generated seconddata. And in another example, the generated second data may be used inconnection with another method, such as one or more of the other examplemethods described in this disclosure. As such, the server 102 may usethe output provided by one method as input in connection with anothermethod. Additionally or alternatively, the server 102 may cause thegenerated second data to be stored in a data storage accessible to theserver 102 such that it may be retrieved at a later time by the server102 or by another computing device.

In one example, a second phase of the technique may help edit the textrepresented by the output of first phase so that the text is likely tobe more useful in the context of providing a personalized news programto a user as described above. FIG. 4 is a flow chart depicting acts thatcan be carried out in method 400, which is an example implementation ofthe second phase of the technique.

At block 402, the method 400 involves the server 102 accessing thirddata representing text. The third data may be stored in a data storageaccessible to the server 102, and may be data previously used orintended for use in connection with another news-related product orservice (e.g., a website or newspaper). The third data may be generatedin a variety of ways, such as those described above in connection withthe first data. Alternatively, the third data may be the output of themethod 300. As such, in one example, the represented text may be text ofa news article.

Continuing with the illustration above, in the case where the third datais the output of the method 300, the third data is the data Brepresenting the text “STORM MOVING TOWARDS EAST COAST. BY JOHN SMITH.BREAKING NEWS: A MAJOR STORM IS EXPECTED TO APPROACH THE EAST COAST THISFRIDAY AT 5 PM EST . . . FOR EMERGENCY ASSISTANCE, DIAL 911. RELATEDARTICLE: HURRICANE NEAR EAST COAST.”.

At block 404, the method 400 involves the server 102 identifying a termwithin the represented text. As used herein, a term may include one ormore words. At block 406, the method 400 involves the server 102 usingthe identified term as a basis to select a text-editing rule from amonga set of text-editing rules. And at block 406, the method 400 involvesthe server 102 generating fourth data that represents the representedtext edited in accordance with the selected text-editing rule.

As such, the server 102 may use an identified term as a basis forselecting a text-editing rule. In one example, the server 102 may usemapping data, perhaps stored in a data storage accessible to the server102, to map an identified term to a particular text-editing rule. Suchmapping data may be configured to logically link terms with text-editingrules for the purposes of “cleansing” text before it is used as a basisto generate data representing an audible news story for use inconnection with a personalized news program as described above.

The identified term may take a variety of forms. For example, theidentified term may be a term such as “BREAKING NEWS:”, “RELATEDARTICLES:”, “READ ALSO:”, “SEE ALSO:”, “EDITOR'S NOTE:”, “CORRECTIONNOTICE:”. The selected text-editing rule may also take a variety offorms. For example, the selected text-editing rule may be a rule ofediting specified text by at least removing from the specified text theidentified term. In another example, the selected text-editing rule maybe a rule of editing specified text by at least removing from thespecified text a hyperlink following the identified term. This may beappropriate when a particular term signals that a hyperlink is likely tofollow that term, and where is may be desired to remove both the termand the hyperlink before the text is used as a basis to generate datarepresenting an audible news story.

As yet another example, the selected text-editing rule may be a rule ofediting specified text by at least removing from the specified text asentence following the identified term. As still another example, theselected text-editing rule may be a rule of editing specified text by atleast removing from the specified text a paragraph following theidentified term. Other types of rules are possible as well, and mappingsbetween identified terms and rules may be configured in various waysdepending on the manner in which text is desired to be cleansed.

In some instances, the server 102 identifying a term within therepresented text may involve the server identifying multiple termswithin the represented text. Further, the server 102 using theidentified term as a basis to select a text-editing rule from among aset of text-editing rules may involve using the identified terms as abasis to select respective text-editing rules from among the set oftext-editing rules. And finally, the server 102 generating second datathat represents the represented text edited in accordance with theselected text-editing rule may involve the server 102 generating seconddata that represents the represented text edited in accordance with theselected text-editing rules.

Continuing with the illustration above, in the case where one identifiedterm is “BREAKING NEWS:” and the respectively selected text-editing ruleis a rule of editing specified text by at least removing from thespecified text the identified term, and where another identified term is“RELATED ARTICLE:” and where the respectively selected text-editing ruleis a rule of editing specified text a hyperlink following the identifiedterm, at block 408, the method 400 may involve the server 102 generatingdata C that represents the text “STORM MOVING TOWARDS EAST COAST. BYJOHN SMITH. A MAJOR STORM IS EXPECTED TO APPROACH THE EAST COAST THISFRIDAY AT 5 PM EST . . . FOR EMERGENCY ASSISTANCE, DIAL 911.”

While it may be desired to include the terms “BREAKING NEWS:” and“RELATED ARTICLE: HURRICANE NEAR EAST COAST.” in a news article, it maynot likewise be desired to have such terms be as part of a correspondingaudible news story that is used in connection with a personalized newsprogram. As such, as shown in the example above, such terms may beremoved from the text before the text is used to generate datarepresenting a audible news story.

At block 408, the method 400 involves the server 402 providing outputbased on the generated fourth data. In one example, this may involve theserver 102 providing the generated fourth data as output. As anotherexample, this may involve the server 102 providing a subset of, or amodified version of, the generated fourth data as output.

In one example, the server 102 providing output based on the generatedfourth data may involve the server 102 transmitting to a computingdevice (e.g., the client 104), output based on the generated fourthdata. And in another example, the generated fourth data may be used inconnection with another method, such as one or more of the other examplemethods described in this disclosure. As such, the server 102 may simplyuse the output provided by one method as input in connection withanother method. Additionally or alternatively, the server 102 may causethe generated fourth data to be stored in a data storage accessible tothe server 102 such that it may be retrieved at a later time by theserver 102 or by another computing device.

In one example, a third phase of the technique may help edit the textrepresented by the output of second phase so that the text is morelikely to be useful in the context of providing a personalized newsprogram to a user as described above. FIG. 5 is a flow chart depictingacts that can be carried out in method 500, which is an exampleimplementation of the third phase of the technique described above.

At block 502, the method 500 involves the server 102 accessing fifthdata representing text, wherein the text defines at least one positionrepresenting a particular type of grammatical break between two portionsof the text. The fifth data may be stored in a data storage accessibleto the server 102, and may be data previously used or intended for usein connection with another news-related product or service (e.g., awebsite or newspaper). The fifth data may be generated in a variety ofways, such as those described above in connection with the first data orthe third data. Alternatively, the fifth data may be the output of themethod 400. As such, in one example, the represented text may be text ofa news article.

The particular type of grammatical break between the two portions of thetext may take a variety of forms. As one example, it may be a paragraphbreak between two paragraphs of the text. As another example, it may bea sentence break between two paragraphs of the text. Other types ofgrammatical breaks are possible as well. Such breaks may be representedin a variety of ways, such as with special (typically non-printable)characters in the text, for instance.

At block 504, the method 500 involves the server 102 identifying, fromamong the at least one position, a position that is closest to a targetposition within the text. And at block 506, the method 500 involvesbased on the identified position within the text, the server 102generating sixth data that represents a proper subset of the text,wherein the proper subset extends from an initial position within thetext to the identified position within the text. As a result, the sixthdata represents text that is a shortened version of the text representedby the fifth data.

As indicated above, the target position may be predetermined to yieldcertain types of results. In one example, the target position may bewithin a range from a first position to a second position, where thefirst position is positioned after 100 words from a beginning of thetext, and where the second position is positioned before 130 words fromthe beginning of the text. In a more particular example, the firstposition is positioned after 124 words from the beginning of the text,and the second position is positioned before 126 words from thebeginning of the text. As such, in one example, the target position maybe approximately 125 words into the text, which when spoken by a humanor machine, translates into roughly one to two minutes of speech. Insome instances, this may be considered an optimal number of words for anaudible news story. However, other numbers of words, and therefore othertarget positions, are also possible.

As described above, the act at block 504 involves the server 102identifying, from among the at least one position, a position that isclosest to a target position within the text. This ensures that theidentified position represents a particular type of grammatical breakbetween two portions of the text. As such, in the case where theparticular type of grammatical break is a paragraph break, at block 504,the server may identify the closest non-paragraph-break position to thetarget position. Likewise, in the case where the particular type ofgrammatical break is a sentence break, at block 504, the server mayidentify the closest non-sentence-break position to the target position.With this approach, text can be shortened to be closest to an optimallength, but while still having certain grammatical properties. This maybe beneficial when the text is used to generate data representing anaudible news such the audible news story has a desired length, butwithout having to end mid-paragraph or mid-sentence.

In some instances, it may be desired to for the server 102 to determinethat the server 102 cannot identify a first type of position within athreshold range of the target position, and in response, identify asecond type of position within the threshold range of the targetposition. For instance, the server 102 may determine that the server 102cannot identify a non-paragraph-break position within a threshold rangeof the target position, and in response, the server 102 may identify anon-sentence-break position that is closest to the target position.

At block 508, the method 500 involves the server 102 providing outputbased on the generated sixth data. In one example, this may involve theserver 102 providing the generated sixth data as output. As anotherexample, this may involve the server 102 providing a subset of, or amodified version of, the generated sixth data as output.

In one example, the server 102 providing output based on the generatedsixth data may involve the server 102 transmitting to a computing device(e.g., the client 104), output based on the generated sixth data. And inanother example, the generated sixth data may be used in connection withanother method, such as one or more of the other example methodsdescribed in this disclosure. As such, the server 102 may simply use theoutput provided by one method as input in connection with anothermethod. Additionally or alternatively, the server 102 may cause thegenerated sixth data to be stored in a data storage accessible to theserver 102 such that it may be retrieved at a later time by the server102 or by another computing device.

In one example, a fourth phase of the technique may use the textrepresented by the output of the third phase to generate audible contentthat is useful in the context of providing a personalized news programto a user as described above

In one example, the fourth phase of the technique involves the server102 accessing seventh data representing text. The seventh data may bestored in a data storage accessible to the server 102, and may be datapreviously used or intended for use in connection with anothernews-related product or service (e.g., a website or newspaper). Theseventh data may be generated in a variety of ways, such as thosedescribed above in connection with the first data, the third data, orthe fifth data. Alternatively, the seventh data may be the output of themethod 500. As such, in one example, the represented text may be text ofa news article.

In one example, the fourth phase of the technique further involves usingthe seventh data to display the represented text to be read aloud by anarrator, and recording the narrator's reading of the text, therebygenerating eight data representing an audible version of the text. In analternative example, the fourth phase involves the server 102 accessingseventh data representing text, and providing the seventh data to TTSsystem that uses the seventh data to generate eight data representing anaudible version of the text. In either case, the server 102 may then usethe generated eight data in connection with providing a personalizednews program as described above (e.g., by transmitting to the clientbased on a playlist).

IV. Example Variations

The variations described in connection with select examples of thedisclosed system and method may be applied to all other examples of thedisclosed system and method.

Further, while one or more acts have been described as being performedby or otherwise related to certain devices or entities (e.g., the server102 or the client 104), the acts may be performed by or otherwiserelated to any device or entity. As such, any function that has beendescribed as being performed by the server 102 could alternatively beperformed by a different server or by the client 104.

Further, the acts need not be performed in the disclosed order, althoughin some examples, an order may be preferred. Also, not all acts need tobe performed to achieve the desired advantages of the disclosed systemand method, and therefore not all acts are required.

Also, while the disclosed methods have been described principally inconnection with providing a personalized news program, the methods maybe applied in connection with other applications or environments.

While select examples of the disclosed system and method have beendescribed, alterations and permutations of these examples will beapparent to those of ordinary skill in the art. Other changes,substitutions, and alterations are also possible without departing fromthe disclosed system and method in its broader aspects as set forth inthe following claims.

The invention claimed is:
 1. A method comprising: receiving, from aclient device, a request for data that represents at least one contentitem of a sequence of content items, wherein the at least one contentitem comprises multiple portions, and wherein at least one of themultiple portions represents text; preparing the at least one contentitem of the sequence, wherein the preparing comprises: (i) extracting,from the at least one content item of the sequence, at least one of themultiple portions that represents text; (ii) making a determination thatthe extracted at least one of the multiple portions has a particularcharacteristic; and (iii) based on the determination, modifying theextracted at least one of the multiple portions; generating datarepresenting a concatenation of (i) the prepared at least one contentitem of the sequence and (ii) at least one other content item of thesequence; and providing output based on the generated data.
 2. Themethod of claim 1, wherein the at least one content item comprises anews article, a sports article, a politics article, or an entertainmentarticle.
 3. The method of claim 2, wherein extracting the at least oneof the multiple portions that represents text is based on the at leastone of the multiple portions that represents text representing contentfrom at least one section from a predefined set of sections of the newsarticle.
 4. The method of claim 1, wherein modifying the extracted atleast one of the multiple portions that represents text comprisesediting a length of the extracted at least one of the multiple portionsthat represents text.
 5. The method of claim 1, wherein the particularcharacteristic of the extracted at least one of the multiple portionsthat represents text is a number of text characters.
 6. The method ofclaim 1, wherein the extracted at least one of the multiple portionsthat represents text defines at least two positions representing aparticular type of grammatical break, and wherein modifying theextracted at least one of the multiple portions that represents textcomprises: (i) identifying, from among the at least two positions, aposition that is closest to a target position within the text; and (ii)based on the identified position within the text, removing a particularportion of text that follows the identified position within the text. 7.The method of claim 1, wherein modifying the extracted at least one ofthe multiple portions that represents text comprises: (i) identifying aterm within the represented text; (ii) using the identified term as abasis to select a text-editing rule from among a set of text-editingrules; and (iii) applying the selected text-editing rule to theextracted at least one of the multiple portions that represents text. 8.The method of claim 1, further comprising: providing the generated datato a text-to-speech system; and generating, by the text-to-speechsystem, an audible version of the generated data.
 9. The method of claim1, further comprising: transmitting the sequence of content items to theclient device; and selecting, by the client device via input from auser, the at least one content item in the sequence.
 10. The method ofclaim 1, wherein the client device is configured to provide apersonalized news program via an audio output mechanism.
 11. The methodof claim 1, wherein the sequence of content items comprises a playlist.12. A non-transitory computer-readable medium having stored thereonprogram instructions that when executed by a processor cause performanceof a set of acts, the set of acts comprising: receiving, from a clientdevice, a request for data that represents at least one content item ofa sequence of content items, wherein the at least one content itemcomprises multiple portions, and wherein at least one of the multipleportions represents text; preparing the at least one content item of thesequence, wherein the preparing comprises: (i) extracting, from the atleast one content item of the sequence, at least one of the multipleportions that represents text; (ii) making a determination that theextracted at least one of the multiple portions has a particularcharacteristic; and (iii) based on the determination, modifying theextracted at least one of the multiple portions; generating datarepresenting a concatenation of (i) the prepared at least one contentitem of the sequence and (ii) at least one other content item of thesequence; and providing output based on the generated data.
 13. Thecomputer-readable medium of claim 12, wherein the at least one contentitem in the sequence comprises a news article, and wherein extractingthe at least one of the multiple portions that represents text is basedon the at least one of the multiple portions that represents textrepresenting content from at least one section from a predefined set ofsections of the news article.
 14. The computer-readable medium of claim12, wherein modifying the extracted at least one of the multipleportions that represents text comprises editing a length of theextracted at least one of the multiple portions that represents text.15. The computer-readable medium of claim 12, wherein the at least onecontent item comprises a news article, a sports article, a politicsarticle, or an entertainment article.
 16. A computing device comprising:a communication interface; a processor; and a non-transitorycomputer-readable medium having stored thereon program instructions thatwhen executed by the processor cause the computing device to perform aset of acts, the set of acts comprising: receiving, from a clientdevice, a request for data that represents at least one content item ofa sequence of content items, wherein the at least one content itemcomprises multiple portions, and wherein at least one of the multipleportions represents text; preparing the at least one content item of thesequence, wherein the preparing comprises: (i) extracting, from the atleast one content item of the sequence, at least one of the multipleportions that represents text; (ii) making a determination that theextracted at least one of the multiple portions has a particularcharacteristic; and (iii) based on the determination, modifying theextracted at least one of the multiple portions; generating datarepresenting a concatenation of (i) the prepared at least one contentitem of the sequence and (ii) at least one other content item of thesequence; and providing output based on the generated data.
 17. Thecomputing device of claim 16, wherein the at least one content item inthe sequence comprises a news article, and wherein extracting the atleast one of the multiple portions that represents text is based on theat least one of the multiple portions that represents text representingcontent from at least one section from a predefined set of sections ofthe news article.
 18. The computing device of claim 16, whereinmodifying the extracted at least one of the multiple portions thatrepresents text comprises editing a length the extracted at least one ofthe multiple portions that represents text.
 19. The computing device ofclaim 16, wherein the at least one content item comprises a newsarticle, a sports article, a politics article, or an entertainmentarticle.
 20. The computing device of claim 16, wherein the particularcharacteristic of the extracted at least one of the multiple portionsthat represents text is a number of text characters.